# -*- encoding=utf8 -*-
__author__ = "v_jwjwchen"
#######################################################################
"""脚本功能：自动点赞与自动评论v1.0"""
#--------------------------------------------------------------------
"""配置你想要评论'关注'页面还是'推荐'页面，默认是'推荐'页面,还是要通过搜索关键字来关注"""
choose = "推荐"
search_name = ""  #当为空时就不会搜索
#--------------------------------------------------------------------
"""请在下方输入你要评论的内容,脚本将会随机选择"""
comment_1 = "不错,很喜欢你的作品,也可以看看我的作品，谢谢[玫瑰]"
comment_2 = "拍的很好看哦，给你点个赞，你要回赞哦[玫瑰]"
comment_3 = "很美喔，喜欢喜欢， 我要一直看你的作品[玫瑰]"
comment_4 = "[玫瑰]先赞一个，小姐姐你真的好美[玫瑰]"
comment_5 = "[玫瑰][玫瑰][玫瑰][玫瑰]互相点赞互相评论喔"
comment_6 = "[玫瑰]拍着好好看，也可以看看我的作品"
comment_7 = "小姐姐 ，请问你平时怎么保养的？美美哒"
comment_8 = "好喜欢看你的视频，很有创意，关注一波"
comment_9 = "[玫瑰]好有气质耶[玫瑰]，怎么买呢？我想买你用的这些材料"
#---------------------------------------------------------------------
"""请在下方输入脚本运行超时时间，默认1800秒，即30分钟"""
timeout = 1800 #设置超时时间,单位秒
#--------------------------------------------------------------------
"""整体时间,最小值是1，当你网速很快时，可以设置成1，默认值是2，网络慢的时候可以调成3"""
wait_time = 1
#--------------------------------------------------------------------
#######################################################################
import time
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
auto_setup(__file__)
x,y = poco.get_screen_size() #获取屏幕分辨率
shell("am force-stop com.ss.android.ugc.aweme")#关闭抖音后台
sleep(wait_time)
start_app("com.ss.android.ugc.aweme")  #启动抖音
sleep(10)  #启动后等待广告播放完毕等
for _ in range(wait_time):
    #看看是否存在儿童青少年模式,如果有就点击,我知道了
    if poco(text="我知道了",touchable=True).exists():
        poco(text="我知道了",touchable=True).click()
    #看看是否存在个人信息保护,存在的话点击好的
    if poco(text="好的",touchable=True).exists():
        poco(text="好的",touchable=True).click()
    #看看是否有好友推荐,有的话则点击关闭
    if poco(text="好友推荐",touchable=False).exists():
        keyevent("BACK")
    #看看是否有好友推荐,有的话则点击关闭
    if poco(text="发现通讯录好友",touchable=False).exists():
        poco(text="好的",touchable=True).click()
        keyevent("BACK")
#根据用户需求选择评论的页面
a = 0
if choose == "关注":
    sibling_list = poco(text='推荐',selected=False,touchable=True).sibling()
    sibling_list[1].click() 
    sleep(wait_time)
#随机挑选评论内容函数
def choice_comment():
    from random import choice
    comment_list = []
    for i in range(1,100):
        comment_num='comment'+'_%s'%i
        try:
            comment = globals()[comment_num]
        except:
            comment = None
        if comment:
            comment_list.append(comment)
    comment = choice(comment_list) 
    return comment

#点击搜索按钮，搜索我们想关注的类别
if poco(descMatches='^搜索.*$',selected=False,touchable=False).exists()  and search_name:
    poco(descMatches='^搜索.*$',selected=False,touchable=False).click()
    sleep(3)
    sibling_list = poco(text="取消",visible=True,touchable=False,longClickable=False).sibling()
    sibling_list[1].click()
    text(search_name,search=True)
    sleep(3)
    poco(text="视频",touchable=False,selected=False).click()
    sleep(1) 
    touch((0.2*x,0.5*y))



start_time = time.time()  #获取当前时间戳
while time.time() - start_time < timeout:  #当执行超时时,则停止
    if poco(descMatches='^未选中.*$',selected=False).exists():
        poco(descMatches='^未选中.*$',selected=False).click() #点赞
#         if poco(descMatches='^关注.*$',touchable=True,selected=False).exists(): #关注
#             poco(descMatches='^关注.*$',touchable=True,selected=False).click()
        sleep(wait_time)
        poco(descMatches='^评论.*按钮$',selected=False).click()
        sleep(wait_time)
        poco(text='留下你的精彩评论吧',touchable=True).click()
        sleep(wait_time)
        comment = choice_comment()
        text(comment)
        sleep(wait_time)
        sibling_list = poco(desc='表情',touchable=True).sibling() #获取表情的兄弟节点
        i = len(sibling_list)-1
        sibling_list[i].click() #发表评论在第五个兄弟节点上
        sleep(wait_time)
        keyevent("BACK")
        sleep(wait_time)
        swipe((0.5*x,0.8*y),(0.5*x,0.2*y),duration=0.5) 
        sleep(wait_time)
        a=0
    else:
        swipe((0.5*x,0.8*y),(0.5*x,0.2*y),duration=0.5) 
        sleep(wait_time)
        a+=1
        if a>=3:
            swipe((0.5*x,0.8*y),(0.5*x,0.2*y),duration=0.5) 
        elif a>=50:
            break


            
            

            
            
            
     